/*
 * @Author: 'zhangkeqq' '2211709169@qq.com'
 * @Date: 2025-07-10 20:26:48
 * @LastEditors: 'zhangkeqq' '2211709169@qq.com'
 * @LastEditTime: 2025-07-10 20:35:04
 * @FilePath: \original_wx\miniprogram\pages\goods\list\list.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import {reqGoodsList} from '../../../api/goods'
Page({
  data: {
    goodsList:[],
    isLoading:false,//判断数据是否是加载中，用于处理网络过慢的防止请求多次
    params:{
      page:1,
      limit:6,
      category1Id:'',
      category2Id:'',
      
    },
    total:10,
    isFinish:false,//用来判断是否加载完毕
  },
  

  onLoad(options) {
    Object.assign(this.data.params,options)
    this.getData()
  },
  async getData(){
     // 在请求发送之前，需要将 isLoading 设置为 true，表示请求正在发送中
     this.data.isLoading = true
    let res = await  reqGoodsList(this.data.params)
    // 在请求结束以后，需要将 isLoading 设置为 false，表示请求已经结束
    this.data.isLoading = false
   this.setData({
      goodsList: [...this.data.goodsList,...res.data],
      isFinish:res.data.length >= this.data.params.limit ? false : true
   })
  },
  //触底加载
  onReachBottom(){
    const {page} = this.data.params
     // 判断 isLoading 状态
    // 如果状态等于 true，说明请求正在发送中，如果请求正在发送中，就不请求下一页数据
    if(this.data.isLoading) return
      // 让 goodsList 长度 和 total 进行对比
    // 如果数据相等，商品列表已经加载完毕
    // if (goodsList.length === total) {
    //   this.setData({
    //     isFinish: true
    //   })
    //   return
    // }
    if(this.data.isFinish == false){
      this.setData({
        params:{...this.data.params,page:page+1}
      })
      this.getData()
    }
  },
  //监听页面下拉刷新
  onPullDownRefresh(){
      //将数据重置
      this.setData({
        goodsList:[],
        total:0,
        isFinish:false,
        isLoading:false,
        params:{...this.data.params,page:1}
      })
      //发送请求
      this.getData()
      //首先关闭下拉刷新效果
      wx.stopPullDownRefresh()
  },
  gotoBack(){
    wx.navigateBack()
  }
})